package org.study.springboot.quartz.common;

import lombok.Data;
import org.springframework.http.HttpStatus;

/**
 * <p>
 * 通用API封装
 * </p>
 *
 * @author fangyu
 * @version v1.0.0
 * @date 2020/11/17 5:18 下午
 */
@Data
public class APIResponse {
    /** 返回信息 */
    private String message;

    /** 返回数据 */
    private Object data;

    public APIResponse() {
    }

    public APIResponse(String message, Object data) {
        this.message = message;
        this.data = data;
    }

    /**
     * 通用封装获取APIResponse对象
     * @param message 返回信息
     * @param data    返回数据
     * @return APIResponse
     */
    public static APIResponse of(String message, Object data) {
        return new APIResponse(message, data);
    }

    /**
     * 通用成功封装获取APIResponse对象
     * @param data 返回数据
     * @return APIResponse
     */
    public static APIResponse ok(Object data) {
        return new APIResponse(HttpStatus.OK.getReasonPhrase(), data);
    }

    /**
     * 通用封装获取APIResponse
     * @param message 返回信息
     * @return APIResponse
     */
    public static APIResponse msg(String message) {
        return of(message, null);
    }
}
